from enum import IntEnum
from typing import overload, NewType, Optional, Tuple

from OCC.Core.Standard import *
from OCC.Core.NCollection import *
from OCC.Core.AppParCurves import *

class AppCont_Function:
    def FirstParameter(self) -> float: ...
    def GetNbOf2dPoints(self) -> int: ...
    def GetNbOf3dPoints(self) -> int: ...
    def GetNumberOfPoints(self) -> Tuple[int, int]: ...
    def LastParameter(self) -> float: ...

class AppCont_LeastSquare:
    def __init__(
        self,
        SSP: AppCont_Function,
        U0: float,
        U1: float,
        FirstCons: AppParCurves_Constraint,
        LastCons: AppParCurves_Constraint,
        Deg: int,
        NbPoints: int,
    ) -> None: ...
    def Error(self) -> Tuple[float, float, float]: ...
    def IsDone(self) -> bool: ...
    def Value(self) -> AppParCurves_MultiCurve: ...

# harray1 classes
# harray2 classes
# hsequence classes
